1. Field of the Invention
The present invention relates generally to peripheral component interconnect (PCI) systems and more particularly, to the utilization of devices designed to the PCI version 1.0 specifications in PCI versions 2.0 and 2.1 systems.
2. Description of the Related Art
Computer systems typically include more than one bus. Attached to each bus are devices which communicate locally with each other over the bus. Some of the buses include system buses and peripheral buses. System buses typically have host central processors and main memory devices attached to them whereas peripheral buses have peripheral devices such as graphics adapters, communication adapters, network adapters, compact disk, floppy disk, hard disk drives etc. attached to them. Various types of peripheral buses are available. However, one type of such bus that is becoming widely used in the industry is the PCI bus. PCI buses are capable of performing significant data transfer in a relatively short period of time (i.e., up to 132 megabytes of data per second).
Specifications for the PCI bus are now in their third version. The architecture of a PCI bus designed in accordance with the first version of the specifications of the PCI bus (or PCI v1.0) only allowed for four expansion slots in a computer system. An expansion slot permits the attachment of a peripheral device to the system. PCI buses designed in accordance with PCI v2.0 specifications, however, allow for many more than four expansion slots. The provision of the additional expansion slots is facilitated using PCI-PCI bus bridges. Each PCI-PCI bus bridge contains a bus. Each bus is able to accommodate four additional expansion slots. Hence, the more PCI-PCI bridges there are, the more PCI buses in the computer system and thus, the more peripheral devices can be accommodated by the system.
The PCI v2.0 specifications mandated that PCI v2.0 systems be backward compatible to PCI v1.0 systems. Thus, peripheral devices designed to the PCI v1.0 specifications can be attached to PCI v2.0 buses. However, the use of PCI v1.0 devices in PCI v2.0 systems presents certain problems when PCI-PCI bridges are used. For example, on power on or after being reset, a computer system has to first configure itself. This usually entails querying each device connected to each PCI bus for its identification and functionality. PCI-PCI bridges, which are connected onto PCI buses, are queried along with the other devices on the buses. PCI v2.0 devices respond to a configuration query if the bus to which they are attached is being configured while their ID select lines are driven. PCI v1.0 devices, on the other hand, respond to a query so long as their ID select lines are driven. As will be discussed later, there are instances when a PCI-PCI bridge is queried while the ID select of a device on the bus to which the bridge is attached is also driven. When this occurs, if the device is a PCI v1.0 device, both the device and the PCI-PCI bridge will respond to the query. As a result, the system may crash.
Thus, there is a need in the art for an apparatus and method that allow PCI v1.0 devices to respond to configuration queries only if they are true targets of the queries.
The need in the art is addressed by the present invention. In a first implementation of the invention, a logical gate is used between an expansion slot and a bus bridge to select a device when the device is the true target of a configuration query.
In another implementation of the invention, an address data line designated to indicate the selection of a bus to be configured is used instead to select a device when the device is the true target of a configuration query.